package com.mi.minal.module.system.service;


import com.mi.minal.common.util.BaseService;
import com.mi.minal.mybatis.entity.*;
import com.mi.rule.util.project.SRS;

import java.util.List;

/**
 * <p>
 * 资源表 服务类
 * </p>
 *
 * @author 王永吉
 */
public interface SystemService extends BaseService {
    public SRS test0();

    public SRS test1(String biaoji);

    public SRS test2(String biaoji);

    public SRS test3(String biaoji);


    /**
     * 更新已存在资源的功能和名称
     */
    SRS resourceRefreshAll(SRS param);

    /**
     * 修改角色资源
     */
    SRS updateRoleResource(SRS param);

    /**
     * 修改角色菜单
     */
    SRS updateRoleMenu(SRS param);

    /**
     * 刷新某个用户的角色
     */
    SRS refreshUserRole(String userId);

    /**
     * 获取角色资源
     */
    List<SysLinkRoleResource> getRoleResource(String roleId);

    /**
     * 获取角色菜单
     */
    List<SysLinkRoleMenu> getRoleMenu(String roleId);

    /**
     * 项目启动时调用一次
     * <p>
     * 1.清除已失效资源
     * 2.更新已存在的资源
     * 3.添加新资源
     * 4.插入到缓存中
     */
    SRS systemResourceCleanAdd(SRS param);

    /**
     * 项目启动时调用一次
     * 刷新角色菜单和角色资源
     */
    SRS refreshRoleMenuAndResource(SRS param);

    //资源列表
    List<SysResource> resources();

    //角色列表
    List<SysRole> roles();

    //菜单列表
    List<SysMenu> menus();

    //角色菜单Urls
    List<String> roleMenuUrls(Object roleId);

    List<String> roleMenuIds(String roleId);

    List<String> roleMenuIds(List ids);

    //角色菜单List
    List<SysMenu> roleMenuList(String roleId);

    List<SysMenu> roleMenuList(List<?> roleIds);

    //角色资源Urls
    List<String> roleResourceUrls(Object roleId);

    //角色资源Urls
    List<String> roleResourceIds(String roleId);

    //角色资源Urls
    List<String> roleResourceIds(List roleIds);

    List<String> roleResourceUrls2(List<?> roleIds);

    //角色资源List
    List<SysResource> roleResourceList(String roleId);

    //角色资源List
    List<SysResource> roleResourceList(List roleIds);

    SRS insertDict(SysDict dict);

    SRS deleteDict(Object[] ids);

    SRS updateDict(SysDict dict);

    SRS pageDict(SRS param);

    SRS listDict(SRS dict);

    SRS infoDict(SRS param);

    SRS insertMenu(SysMenu menu);

    SRS deleteMenu(Object[] ids);

    SRS updateMenu(SysMenu menu);

    SRS pageMenu(SRS param);

    SRS listMenu(SRS param);

    SRS infoMenu(SRS param);

    SRS updateResource(SysResource resource);

    SRS pageResource(SRS param);

    SRS listResource(SRS param);

    SRS infoResource(SRS param);

    SRS insertSysRole(SysRole role);

    SRS deleteSysRole(Object[] ids);

    SRS updateSysRole(SRS role);

    SRS pageSysRole(SRS param);

    SRS listSysRole(SRS param);

    SRS infoSysRole(SRS param);

    SRS login(SRS param);

    SRS resetPassword(SRS param);

    void updateVersion(Object o);

    SRS refreshMenu(SysMenu[] menus);

    SRS updatePassword(SRS param);

    SRS insertSysUser(SysUser param);

    SRS deleteSysUser(Object[] ids);

    SRS updateSysUser(SysUser param);

    SRS listSysUser(SysUser param);

    SRS pageSysUser(SRS param);

    SRS infoSysUser(SRS param);

    SRS refreshToken(SRS param);

}
